Fix biparabolic regression - #2865
Conversation
- Replace deprecated EXT_ITER with ITER - Fix swapped CFL_ADAPT_PARAM values (factor-down must be < 1.0) - Switch from JST to ROE with MUSCL and Venkatakrishnan limiter for better robustness at Mach 1.7 - Remove unused adjoint, design-variable, and equivalent-area settings - Disable multigrid and add case to serial_regression.py
6d513e2 to
a60faaa
Compare
|
Thanks! Please keep the adjoint stuff so the file can then be re-used for an adjoint setup as well. With these settings, does it converge completely, can you post a plot of the residuals as function of iterations here? |
…te test_vals - Restore adjoint, DV, and adjoint I/O settings (inert in DIRECT runs) - Keep EQUIV_AREA and MARKER_NEARFIELD commented out: enabling them gives 760 non-physical points and rms[Rho] +3.4 instead of -3.9 - Update test_vals to CI-computed values
|
That convergence doesn't look good. Also, the equivalent area and nearfield conditions are important parts of this setup so I think it is best to keep those, since we already have a bunch of testcases that test the standard euler flow with a farfield BC. That probably means tinkering a bit with the settings to find out how to make it converge well. |
I dug into the nearfield setup and I think the problem is deeper than config settings. Findings, all tested with everything else held constant: MARKER_NEARFIELD alone (with EQUIV_AREA= NO) gives 760 non-physical points and rms[Rho] = 3.4319. Enabling EQUIV_AREA= YES on top gives bit-identical results, so the EA post-processing isn't involved it's the nearfield BC itself. So this looks like the 2D coincident-node nearfield path being broken rather than a settings issue probably needs a look at the nearfield BC implementation. Happy to keep going if you can point me at the relevant code, or to close this if you'd rather handle it separately. |

Proposed Changes
Updates the biparabolic supersonic Euler case (
TestCases/euler/biparabolic) so it runs on currentdevelop, and adds it toserial_regression.py.Config changes:
EXT_ITER→ITER(deprecated option prevented the config from parsing at all)CFL_ADAPT_PARAM: factor-down and factor-up were swapped (1.5, 0.5→0.5, 1.5). SU2 rejects factor-down ≥ 1.0, but this was never caught becauseCFL_ADAPTwas set toNO.CONV_NUM_METHOD_FLOWfrom JST to ROE withMUSCL_FLOWand the Venkatakrishnan limiter. The case diverged with JST at CFL 25, 5 and 1, so it wasn't a timestep issue — the central scheme wasn't robust enough for the shocks at Mach 1.7.MGLEVEL3 → 0Note on scope: the original config was set up for an adjoint-based sonic-boom (equivalent-area) design study rather than a direct solve, and the
MARKER_NEARFIELD/EQUIV_AREAsetup appears to be what was causing the divergence. I reduced it to a minimal direct Euler run so it works as a regression case happy to restore the design-related settings if you'd prefer the case keep that capability.Regression entry uses
test_iter = 25, with values verified reproducible across repeated runs. Residuals stall around -4 rather than reaching the -6 criterion at longer horizons let me know if you'd prefer different settings.Tested locally with a serial build (MPI disabled). I'm new to SU2, and worked through this with AI assistance.
Related Work
Resolves #2864.
PR Checklist
pre-commit run --allto format old commits.